// 《围棋》作者版权所有。保留所有权利。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

// go:build amd64 | | 386 

package runtime

import (
	"internal/goarch"
	"unsafe"
)

// adjust Gobuf，就好像它使用上下文ctxt 
// 执行了对fn的调用一样，然后在fn中的第一条指令之前停止。
func gostartcall(buf *gobuf, fn, ctxt unsafe.Pointer) {
	sp := buf.sp
	sp -= goarch.PtrSize
	*(*uintptr)(unsafe.Pointer(sp)) = buf.pc
	buf.sp = sp
	buf.pc = uintptr(fn)
	buf.ctxt = ctxt
}
